const Koa = require('koa');
const router = require('koa-router')();
// 非get请求 的参数解析中间件
const bodyParser = require('koa-bodyparser');

// 实例化
const app =  new Koa();
const PORT = 3002

/**
 *  http协议：超文本传输协议（Hypertext Transfer Protocol，HTTP）是一个简单的请求-响应协议
 *
 *  你（前端）不请求，我（后端）不响应
 * ctx: context
 *
 * request    req ---
 * response   res ---
 *
 * 浏览器的每一次刷新都相当于一次get请求
 *
 * query: 获取get请求方式的url参数
 *
 *
 * # restful Api 一种接口书写形式。
 * 特点：针对赠删改查接口
 *
 *  一个url （/api/user）,多个请求方式
 *
 * get  查  GET /api/user
 * post 增  POST /api/user
 * put  改  Put /api/user/:id
 * delete 删除 delete /api/user/:id
 *
 */

app.use(bodyParser());

// 数组数据库
const db = [
  {
    id: 1,
    name: 'zhangsan',
    avatar: 'http://localhost:30002',
    age: 1,
    gender: 0,
    address: '上海市奉贤区海湾'
  }
]

router.get('/api/user', async(ctx,next) => {
  ctx.body = {
    code: 0,
    msg: 'success',
    data: db
  }
})
// 添加用户
router.post('/api/user', async(ctx,next) => {
  const info = ctx.request.body;
  db.push(info)
  ctx.body = {
    code: 0,
    msg: 'success',
    data: db
  }
})
// 修改接口
router.put('/api/user/:id', async(ctx,next) => {
  const info = ctx.request.body;
  console.log('infoL:......:', info)
  const { id } = ctx.params;
  db.splice(id, 1, info)
  ctx.body = {
    code: 0,
    msg: 'success',
    data: db
  }
})

// 删除接口
router.delete('/api/user/:id', async(ctx,next) => {
  const  { id } = ctx.params;
  db.splice(id, 1)
  ctx.body = {
    code: 0,
    msg: 'success',
    data: db
  }
})

// router.put('/api/login/:id', async (ctx, next) => {
//   ctx.body = {
//     code: 0,
//     msg: 'success',
//     data: {
//       query: ctx.request.body,
//       params: ctx.params
//     }
//   }
// })

// router.post('/api/register', async(ctx, next) => {

//   ctx.body = {
//     code: 0,
//     msg: 'success',
//     data: {
//       msg: ctx.request.body
//     }
//   }
// })

//
app.use(router.routes(), router.allowedMethods())

// app.use(async (ctx, next) => {
//   // 请求路径  请求参数  请求方式
//   // ctx.body = {
//   //   path: ctx.path,
//   //   url: ctx.url,
//   //   method: ctx.method,
//   //   origin: ctx.origin,
//   //   query: ctx.query
//   // }

//   // if (ctx.path === '/api/login') {
//   //   ctx.body = `<h1>登陆页面</h1>`
//   // } else if (ctx.path === '/api/register') {
//   //   ctx.body = `<h1>注册页面</h1>`
//   // } else {
//   //   ctx.body = {
//   //     msg: '404'
//   //   }
//   // }
//   // ctx: request response
//   // next: 就是一个函数，控制具柄下移
// })


app.listen(PORT, () => {
  console.log(`http://localhost:${PORT}`)
})